home *** CD-ROM | disk | FTP | other *** search
- OPT NOEXE,PPC
-
- PROC RealVal(str:PTR TO CHAR,pos=0)(DOUBLE,LONG)
- DEFD d=0.0,f,o=0.1
- DEFL n,m,pre=TRUE:BOOL,sign
- WHILE str[pos]=" " OR str[pos]="\n" OR str[pos]="\t" DO pos++
- IF str[pos]="-"
- sign:=-1
- pos++
- ELSE
- sign:=1
- ENDIF
- WHILE m:=str[pos]
- IF m>="0" AND m<="9"
- n:=m-"0"
- IF pre
- d*=10
- d+=n
- ELSE
- f:=n
- f*=o
- d+=f
- o*=0.1
- ENDIF
- ELSEIF m="."
- pre:=FALSE
- ELSE
- RETURN d*sign,pos
- ENDIF
- pos++
- ENDWHILE
- ENDPROC d*sign,pos
-